home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / 3dlib15.zip / DEMO3D.PAS < prev    next >
Pascal/Delphi Source File  |  1992-10-27  |  4KB  |  160 lines

  1. (*******************************************************************)
  2. (* 3dLIB Macro Program 3dPas.pas                                   *)
  3. (* Generated on the 15-3-1992 Sunday, 1992:3:15                    *)
  4. (* (c) 1992, Loewy Ron.                                            *)
  5. (*******************************************************************)
  6.  
  7. program macronewdemo;
  8.  
  9. uses
  10.     crt
  11.     ,graph
  12.     ,rtObj
  13.     ,project3
  14.     ,hdr3d
  15.     ,ctm3d
  16.     ;
  17. (*******************************************************************)
  18. (* Global Variables and Constants                                  *)
  19. (*******************************************************************)
  20. var
  21.     i,
  22.     element    : integer;
  23.     ee    : word;
  24.     obj    : array [ 1 .. 9 ] of baseObjectPtr;
  25.     ch    : char;
  26.     V0
  27.     ,V1
  28.     ,V2
  29.     ,V3
  30.     ,V4
  31.     ,V5
  32.     ,V6
  33.     ,V7
  34.     ,V8
  35.     ,V9    : real;
  36.     I0
  37.     ,I1
  38.     ,I2
  39.     ,I3
  40.     ,I4
  41.     ,I5
  42.     ,I6
  43.     ,I7
  44.     ,I8
  45.     ,I9    : integer;
  46. const
  47.     zeroPoint    : point3d = (x:0.0; y:0.0; z:0.0);
  48.  
  49. (*******************************************************************)
  50. (* error                                                           *)
  51. (*******************************************************************)
  52. procedure error(i : byte; j : word);
  53. var
  54.     errStr    : string[20];
  55.     a    :char;
  56. begin
  57.     restoreCrtMode;
  58.     case i of
  59.         1 : errStr := 'I/O error #'
  60.         else errStr := 'General error #'
  61.     end; { case }
  62.     writeln;
  63.     write(errStr);
  64.     if (j <> 0) then
  65.         writeln(j)
  66.     else
  67.         writeln;
  68.     a := readKey;
  69.     closeGraph;
  70.     halt(1)
  71. end; {error}
  72.  
  73. (*******************************************************************)
  74. (* power                                                           *)
  75. (*******************************************************************)
  76. function power(a, b : real) : real;
  77. begin
  78.     power := exp(b * ln(a));
  79. end; {power}
  80.  
  81. (*******************************************************************)
  82. (* MAIN                                                            *)
  83. (*******************************************************************)
  84. begin
  85.     resetPerspective;
  86.     obj[1] := new(obj3dPtr, open('pyr.3D2', zeroPoint, maxColor));
  87.     ee := obj[1]^.load;
  88.     if (ee <> 0) then
  89.         error(1, ee);
  90.     obj[1]^.goto3DPos(trunc( 0), trunc( 0), trunc( 0));
  91.     resetPerspective;
  92.     for i0 := 1 to trunc( 15) do begin
  93.       setcolor(1 + random(maxColor));
  94.         obj[1]^.paint;
  95.         obj[1]^.rotate(z, trunc( 12));
  96.     end; { loop }
  97.     for i0 := 1 to trunc( 60) do begin
  98.       setcolor(1 + random(maxColor));
  99.         obj[1]^.paint;
  100.         obj[1]^.rotate(x, trunc( 6));
  101.         obj[1]^.paint;
  102.     end; { loop }
  103.     obj[1]^.paint;
  104.     obj[1]^.rotate(z, trunc( 180));
  105.     for i0 := 1 to trunc( 60) do begin
  106.       setcolor(1 + random(maxColor));
  107.         obj[1]^.paint;
  108.         obj[1]^.rotate(y, trunc( 6));
  109.         obj[1]^.paint;
  110.     end; { loop }
  111.     for i0 := 1 to trunc( 120) do begin
  112.       setcolor(1 + random(maxColor));
  113.         obj[1]^.paint;
  114.         obj[1]^.rotate(x, trunc( 6));
  115.         obj[1]^.paint;
  116.         obj[1]^.paint;
  117.         obj[1]^.rotate(y, trunc( 6));
  118.         obj[1]^.paint;
  119.     end; { loop }
  120.     for i0 := 1 to trunc( 120) do begin
  121.       setcolor(1 + random(maxColor));
  122.         obj[1]^.paint;
  123.         obj[1]^.rotate(x, trunc( 3));
  124.         obj[1]^.paint;
  125.         obj[1]^.paint;
  126.         obj[1]^.rotate(y, trunc( 3));
  127.         obj[1]^.paint;
  128.         obj[1]^.paint;
  129.         obj[1]^.rotate(z, trunc( 6));
  130.         obj[1]^.paint;
  131.     end; { loop }
  132.     for i0 := 1 to trunc( 30) do begin
  133.       setcolor(1 + random(maxColor));
  134.         obj[1]^.paint;
  135.         obj[1]^.rotate(z, trunc( 6));
  136.         obj[1]^.paint;
  137.     end; { loop }
  138.     for i0 := 1 to trunc( 120) do begin
  139.       setcolor(1 + random(maxColor));
  140.         obj[1]^.paint;
  141.         obj[1]^.rotate(x, trunc( 3));
  142.         obj[1]^.paint;
  143.         obj[1]^.paint;
  144.         obj[1]^.rotate(y, trunc( 6));
  145.         obj[1]^.paint;
  146.         obj[1]^.paint;
  147.         obj[1]^.rotate(z, trunc( 3));
  148.         obj[1]^.paint;
  149.     end; { loop }
  150.     for i0 := 1 to trunc( 450) do begin
  151.       setcolor(1 + random(maxColor));
  152.         obj[1]^.paint;
  153.         obj[1]^.move(x,  -1);
  154.         obj[1]^.rotate(x, trunc( 3));
  155.         obj[1]^.paint;
  156.     end; { loop }
  157.     ch := readKey;
  158.     closeGraph;
  159. end.
  160.